ImageView 的 scaleType 属性
Android 官方给 ImageView 提供了八种scaleType
的属性值,每种都对应了一种展示方式。
八个ScaleType
,其实可以分为三个类型:
- 以
FIT_
开头的 4 种,它们的共同点是都会对图片进行缩放; - 以
CENTER_
开头的 3 种,它们的共同点是居中显示,图片的中心点会与ImageView
的中心点重叠; ScaleType.MATRIX
FIT_
ScaleType.FIT_CENTER:默认值,图片会被等比缩放到控件上并居中显示。
ScaleType.FIT_START:图片等比缩放到控件大小,并放置在控件的左上角展示。
ScaleType.FIT_END:图片等比缩放到控件大小,并放置在控件的右下角展示。
ScaleType.FIT_XY:图片缩放到控件大小,并完全填充控件大小展示。[ 非等比例缩放 ]
CENTER_
- ScaleType.CENTER:不使用缩放,图片和
ImageView
的中心会重合,并根据ImageView
的大小显示图片 - ScaleType.CENTER_CROP:图片会被等比缩放直到完全填充整个
ImageView
,并居中显示。 - ScaleType.CENTER_INSIDE:此模式的目的是完全展示图片内同为目的,图片将被等比缩放到能够完整展示在
ImageView
中并居中
MATRIX
ScaleType.MATRIX:该模式需要与
ImageView.setImageMatrix (Matrix matrix)
配合使用,因为该模式需要用于指定一个变换矩阵用于指定图片如何展示。示例(注意步骤)
1
2
3
4
5
6
7imageView.setScaleType(ImageView.ScaleType.MATRIX);
imageView.setScaleType(ImageView.ScaleType.MATRIX); // 设置为矩阵模式
Matrix matrix = new Matrix(); // 创建一个单位矩阵
matrix.setTranslate(100, 100); // 平移 x 和y各 100 单位
matrix.preRotate(30); // 顺时针旋转30度
imageView.setImageMatrix(matrix); // 设置并应用矩阵